// 引入bindingx，此库类似于微信小程序wxs，目的是让js运行在视图层，减少视图层和逻辑层的通信折损
const BindingX = uni.requireNativePlugin('bindingx');

export default {
  methods: {
    // 此处不写注释，请自行体会
    nvueScrollHandler(e) {
      const anchor = this.$refs['u-scroll-list__scroll-view'].ref;
      const element = this.$refs['u-scroll-list__indicator__line__bar'].ref;
      const scrollLeft = e.contentOffset.x;
      const contentSize = e.contentSize.width;
      const { scrollWidth } = this;
      const barAllMoveWidth = this.indicatorWidth - this.indicatorBarWidth;
      // 在安卓和iOS上，需要除的倍数不一样，iOS需要除以2
      const actionNum = uni.$u.os() === 'ios' ? 2 : 1;
      const expression = `(x / ${actionNum}) / ${contentSize - scrollWidth} * ${barAllMoveWidth}`;
      BindingX.bind({
        anchor,
        eventType: 'scroll',
        props: [{
          element,
          property: 'transform.translateX',
          expression
        }]
      });
    }
  }
};